﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TransformeXmlEnCsv
{
	public class Program
	{
		static void Main(string[] args)
		{
			/* Le but est de transformer un fichier XML en un fichier CSV. 
			 * Il y aura 2 fichiers en sortie. L'un pour les informations du BP, et l'autre pour avoir
			 * les "données", c-a-d, les composants avec les quantités nécessaire.
			 */

			// Extraction des blueprints du fichier.
			ReadXml read = new ReadXml(@"d:\123\fichierXml.xml");

			List<Blueprint> listeDesBluePrints = new List<Blueprint>();
			foreach (var item in read.ListDesElements)
			{
				Blueprint blueprint = new Blueprint(item);
				listeDesBluePrints.Add(blueprint);
			}

			WriteFile wfBp = new WriteFile(@"d:/123/blueprint.csv");
			WriteFile wfCompos = new WriteFile(@"d:/123/compos.csv");
			WriteFile wfInvention = new WriteFile(@"d:/123/invention.csv");

			StringBuilder sbBluePrint = new StringBuilder();
			StringBuilder sbCompos = new StringBuilder();
			StringBuilder sbInvent = new StringBuilder();

			foreach (var item in listeDesBluePrints)
			{
//				sbBluePrint.AppendLine(item.ToString());
				sbBluePrint.Append(item.ToString());
				foreach (var compo in item.ListeComposants)
				{
//					sbCompos.AppendLine(compo.ToString());
					sbCompos.Append(compo.ToString());
				}

				foreach (var invention in item.ListeInvention)
				{
//					sbInvent.AppendLine(invention.ToString());
					sbInvent.Append(invention.ToString());
				}
			}

			wfBp.EcritureDuFichier(sbBluePrint.ToString());
			wfCompos.EcritureDuFichier(sbCompos.ToString());
			wfInvention.EcritureDuFichier(sbInvent.ToString());

		}

	}
}
